package pe.gob.osce.sirenas.model.jpa;

import java.io.Serializable;





import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name="DET_REG_DOCENCIA",schema="RNAS")
@SequenceGenerator(name="sqId_Docencia",sequenceName="RNAS.ID_AUD_DOCENCIA", allocationSize=1)
public class Docencia implements Serializable{

	private static final long serialVersionUID = -3495396662122453540L;

	@Id
	@GeneratedValue(strategy =	GenerationType.SEQUENCE, generator="sqId_Docencia")
	@Column(name="N_ID_DOCENCIA")
	private Long idDocencia;	
	@Column(name="N_ID_FICHA")
	private Long idFicha;		
	@Column(name="N_IND_ESPECIALIDAD")
	private Integer indEspecialidad;	
	@Column(name="N_ID_CENTRO_ESTUDIOS")
	private Long idCentroEstudios;	
	@Column(name="N_IND_TIPO_ACTIVIDAD")
	private Long indTipoActividad;
	@Column(name="C_DES_CURSO")
	private String descripcionCurso;		
	@Column(name="C_VAL_DURACION")
	private Long duracion;		
	@Column(name="N_IND_TIPO_DURACION")
	private Long indTipoDuracion;	
	@Column(name="C_COD_TRAMITE")
	private String codTramite;		
	@Column(name="N_IND_ESTADO")
	private Long estado;	

	@Column(name="C_COD_REGISTRO")
	private String codRegistro;
	
	
	/**
	 * Metodo que permite obtener codRegistro.
	 * @return codRegistro , tipo String.
	 */
	public String getCodRegistro() {
		return codRegistro;
	}


	/**
	 * Permite actualizar codRegistro.
	 * @param codRegistro, tipo String.
	 */
	public void setCodRegistro(String codRegistro) {
		this.codRegistro = codRegistro;
	}

	@Embedded
	private Auditoria auditoria;
	
	
	@ManyToOne( cascade = { CascadeType.ALL } )
	@JoinColumn(name="N_ID_FICHA", insertable=false, updatable=false)
	//@NotFound(action = NotFoundAction.IGNORE)
    private FichaArbitral fichaArbitral;


	public Long getIdDocencia() {
		return idDocencia;
	}


	public void setIdDocencia(Long idDocencia) {
		this.idDocencia = idDocencia;
	}


	public Long getIdFicha() {
		return idFicha;
	}


	public void setIdFicha(Long idFicha) {
		this.idFicha = idFicha;
	}





	/**
	 * Metodo que permite obtener indEspecialidad.
	 * @return indEspecialidad , tipo Integer.
	 */
	public Integer getIndEspecialidad() {
		return indEspecialidad;
	}


	/**
	 * Permite actualizar indEspecialidad.
	 * @param indEspecialidad, tipo Integer.
	 */
	public void setIndEspecialidad(Integer indEspecialidad) {
		this.indEspecialidad = indEspecialidad;
	}


	/**
	 * Metodo que permite obtener idCentroEstudios.
	 * @return idCentroEstudios , tipo Long.
	 */
	public Long getIdCentroEstudios() {
		return idCentroEstudios;
	}


	/**
	 * Permite actualizar idCentroEstudios.
	 * @param idCentroEstudios, tipo Long.
	 */
	public void setIdCentroEstudios(Long idCentroEstudios) {
		this.idCentroEstudios = idCentroEstudios;
	}


	public Long getIndTipoActividad() {
		return indTipoActividad;
	}


	public void setIndTipoActividad(Long indTipoActividad) {
		this.indTipoActividad = indTipoActividad;
	}


	public String getDescripcionCurso() {
		return descripcionCurso;
	}


	public void setDescripcionCurso(String descripcionCurso) {
		this.descripcionCurso = descripcionCurso;
	}


	public Long getDuracion() {
		return duracion;
	}


	public void setDuracion(Long duracion) {
		this.duracion = duracion;
	}


	public Long getIndTipoDuracion() {
		return indTipoDuracion;
	}


	public void setIndTipoDuracion(Long indTipoDuracion) {
		this.indTipoDuracion = indTipoDuracion;
	}


	public Long getEstado() {
		return estado;
	}


	public void setEstado(Long estado) {
		this.estado = estado;
	}


	public Auditoria getAuditoria() {
		return auditoria;
	}


	public void setAuditoria(Auditoria auditoria) {
		this.auditoria = auditoria;
	}


	public FichaArbitral getFichaArbitral() {
		return fichaArbitral;
	}


	public void setFichaArbitral(FichaArbitral fichaArbitral) {
		this.fichaArbitral = fichaArbitral;
	}


	/**
	 * Metodo que permite obtener codTramite.
	 * @return codTramite , tipo String.
	 */
	public String getCodTramite() {
		return codTramite;
	}


	/**
	 * Permite actualizar codTramite.
	 * @param codTramite, tipo String.
	 */
	public void setCodTramite(String codTramite) {
		this.codTramite = codTramite;
	}
	
	
	
	
	
}
